1 Introduction

In a recent global survey, Melbourne Australia ranked sixteenth in the most walkable cities worldwide (Kelly & Condous, 2025), demonstrating how deeply walking is ingrained in the city’s culture. This report investigates the complexities within Melbourne pedestrian trends between August 2023 and August 2025, analysing seasonal variation, disruptions and changes over time and location-based travel patterns to assist in highlighting urban planning opportunities.

Utilising a subset of the City of Melbourne Pedestrian Counting System (counts per hour) data (City of Melbourne Open Data Team, 2025), the past 2-years of hourly walking traffic detected by Melbourne sensors from August 2023 to August 2025 will be explored. Each observation contains the following variables:

Table 1: Pedestrian Dataset Variables
Variable Type Description
Location_ID numeric ID number for sensor location
Sensing_Date POSIXct/POSIXt Date of observation
HourDay numeric Hour of the day in which observation was recorded
Total_Peds numeric Total number of pedestrians observed within the hour
Sensor_Name character Name of sensor location
Location character Latitude and Longitude of sensor location

Within the subset of the Pedestrian Counting System data, there are 1048575 observations across 6 variables, as described in Table 1 above, with recordings dated from 8 August 2023 to 7 August 2025.

2 Analysis - Megan O’Rorke

With 21% of all trips in Melbourne being walked (Eady et al., 2024), this makes walking the second most popular mode of transportation after driving.

Utilising the subset of (City of Melbourne Open Data Team, 2025), this section of analysis will explore the below research questions to highlight prevalent trends within Melbourne pedestrian traffic from August 2023 to August 2025.

  • Does pedestrian traffic in Melbourne experience annual seasonality?
  • How has Melbourne pedestrian traffic changed over time?
  • Which are the busiest locations in Melbourne for pedestrian traffic?

2.1 Seasonality

Does Melbourne’s often unpredictable seasonal weather impact on pedestrian traffic trends? The dataset is reformatted, grouping each pedestrian observation into its associated year and season to analyse seasonality.

# Convert Sensing_Date column to date format for analysis (Sanderson 2024)
ped_data_megan1 <- ped_data_megan %>%
  mutate(Sensing_Date = date(Sensing_Date)) %>%
# Create Month and Year columns derived from the Sensing_Date values
  mutate(Month = month(Sensing_Date, label=TRUE), 
         Year = year(Sensing_Date)) %>%
# Create a season column by grouping each month into Summer, Autumn, Winter or Spring
  mutate(Season = ifelse(Month %in% c("Jan", "Feb", "Dec"), "Summer", 
                  ifelse(Month %in% c("Mar", "Apr", "May"), "Autumn", 
                  ifelse(Month %in% c("Jun", "Jul", "Aug"), "Winter", 
                  ifelse(Month %in% c("Sep", "Oct", "Nov"), "Spring", NA)))))
Table 2: Total Melbourne Pedestrians Per Season (all sensor locations), 2023-2025
Year Season Total_Peds
2023 Summer 18596616
2023 Winter 11968713
2023 Spring 48354826
2024 Summer 52095408
2024 Autumn 52081447
2024 Winter 47773987
2024 Spring 51217305
2025 Summer 32829151
2025 Autumn 56158393
2025 Winter 34122221

In Table 2 above, the total number of pedestrians each season is depicted. An annual trend can be observed, whereby Melbourne pedestrian traffic reduces significantly in winter each year. Overall, Autumn of 2025 recorded the highest traffic, with 56,158,393 total pedestrians.

Autumn and spring return similar annual pedestrian levels to summer, however spring of 2023 significantly exceeded the summer pedestrian traffic in the same year. This may be attributed to the extremity of heat in summer discouraging pedestrians, or that many Melbournians vacation over that period, disrupting regular work and school commuting patterns.

(Note: Summer of 2025 data is incomplete with only January included and winter of 2023 is incomplete with only August included in this dataset. Autumn of 2023 omitted from analysis.)

The bar chart below depicts the seasonal trends in pedestrian traffic over time, from 2023 to 2025.

# Use ggplot to create basic plot
# Plot year on x axis, value on y axis, and ensure the fill of bars is set to each measure
stacked_bar_chart <- seasonal_totals %>%
  group_by(Year, Season) %>%
  ggplot(aes(x=Year, y=Total_Peds, fill = Season)) +
  # Set bar position to fill for the proportion of pedestrians each season
  geom_bar(stat = "identity", position = "fill") +
  labs(x = "Year", 
       y = "Proportion of Total Pedestrians",
       fill = "Season") +
  # Set theme
  theme_light()
# Use ggplotly from plotly package to make plot interactive
ggplotly(stacked_bar_chart)

Figure 1: Seasonality of Melbourne Pedestrian Traffic, 2023-2025

In Figure 1, due to incomplete data observations for 2023 and 2025 it is difficult to comment on seasonality over time.

From the complete 2024 seasonal data, it is observed that summer and autumn share the highest proportion of total pedestrians, around 25.6%, with spring following closely at 25.2%. Whilst winter trails only by 1.7%, this does suggest a slight decline in pedestrian activity over the colder months.

2.2 Pedestrian Traffic Over Time

Has the volume of Melbourne pedestrian traffic decreased over time, particularly following the pandemic whereby 35 to 40 per cent of Australians are working remotely in 2025 (Wiltshire, 2025)? The dataset is reformatted, grouping each pedestrian observation into its associated year and month to analyse average traffic trends.

Table 3: Average Monthly Melbourne Pedestrians Per Hour (all sensor locations), 2023-2025
Year Month Average_Peds
2024 Mar 442.29
2023 Dec 431.30
2024 Feb 426.16
2023 Sep 414.23
2023 Aug 413.93
2025 Mar 412.23
2023 Nov 411.70
2024 Apr 406.09
2025 Apr 397.00
2023 Oct 396.31

In Table 3 above, the ten months with the highest average pedestrians per hour are displayed. March 2024 returned the highest mean pedestrian traffic, recording an average of 442.29 pedestrians per hour.

Of the top 10 months, 50% are in 2023, 30% are in 2024 and 20% are in 2025. This decline indicates a negative association between year and monthly average pedestrian traffic per hour, suggesting that environmental and cultural factors are impacting on pedestrian trends.

The line plot below depicts the average monthly pedestrian traffic per hour, over time from 2023 to 2025.

# Use ggplot to create line plot of the monthly average peds per hour
line_plot <- monthly_average %>% 
  # Transform Month into ordinal factor so each month is arranged in the correct order on x axis
  mutate(Month = factor(Month, levels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"))) %>%
  # Use ggplot to plot month on x axis, average_peds on y axis, with separate lines for and colors for each year group
  ggplot(aes(x=Month, y=Average_Peds, color=factor(Year), group=Year)) +
  geom_line() +
  geom_point() +
  # Set axis and color labels
  labs(x = "Month",
    y = "Average Pedestrians (Per Hour)",
    color = "Year") +
  # Set different theme
  theme_light()
# Use ggplotly from plotly package to make plot interactive
ggplotly(line_plot)

Figure 2: Average Monthly Pedestrian Traffic (Per Hour), 2023-2025

In Figure 2, the decline in monthly average pedestrian traffic per hour is evident from 2023 to 2025.

June of 2025 recorded the lowest hourly pedestrian average, at 332.05. Compared to June of 2024 at 351.74 average pedestrians per hour, this is a significant annual discrepancy. Declines may be attributed to changes in working and commuting culture in Melbourne over time, or highlight any environmental changes such as June of 2025 experiencing more rain and wind than June of 2024.

Overall, all months of 2024 recorded lower average hourly pedestrians than their 2023 counterparts, and similarly, all months of 2025 recorded deficits when compared to 2024, with the exception of July 2025. This supports the notion that remote working is becoming increasingly prevalent and may be a key contributor for decreased pedestrian traffic.

2.3 Busiest Melbourne Locations

Which are the busiest sensor locations in Melbourne in 2025 for pedestrian traffic and do these popular sensors cluster around a common area? The dataset is reformatted, grouping each 2025 pedestrian observation into its associated sensor location to analyse pedestrian counts.

Table 4: Total Pedestrians Per Sensor Location, 2025
Sensor_Name Total_Peds
Swa31 5659735
SouthB_T 5106032
QVN_T 4682586
ElFi_T 4656550
Col620_T 3506364
Eli250_T 3344026
Swa123_T 3050095
VAC_T 2866414
Swa148_T 2610307
Bou688_T 2608494

In Table 4 above, the ten sensors with the highest total pedestrian traffic in 2025 are displayed. The Swa31 sensor has the highest total traffic at 5,659,735 pedestrians in 2025, significantly greater than the tenth most popular sensor, Bou688_T at 2,608,494 pedestrians.

The popularity of locations is explored in the map plot below (Coverdale, 2021), depicting the total number of pedestrians per sensor location in 2025.

# Set Melbourne CBD center coordinates
melb_cbd <- c(lon = 144.9631, lat = -37.8136)

# Create bounding box coordinates (OpenAI 2024)
bbox <- c(
  left = melb_cbd["lon"] - 0.01,
  bottom = melb_cbd["lat"] - 0.01,
  right = melb_cbd["lon"] + 0.01,
  top = melb_cbd["lat"] + 0.01
)
# Ensure bbox names are correct for get_stadiamap()
names(bbox) <- c("left", "bottom", "right", "top")

# Get a Stamen terrain map centered on Melbourne CBD (OpenAI 2024)
melb_map <- get_stadiamap(
  bbox = bbox,
  zoom = 15,
  maptype = "stamen_terrain"
)

# Filter pedestrian data for 2025 only, separate coords for mapping and calc total_peds
ped_data_map <- ped_data_megan1 %>%
  filter(Year == 2025) %>%
  # Separate Location column into longitude and latitude values for mapping
  separate(Location, into = c("lat", "lon"), sep= ", ", convert=TRUE) %>%
  # Group by sensor location and sum total pedestrians
  group_by(Sensor_Name, lat, lon) %>%
  summarise(Total_Peds = sum(Total_Peds, na.rm=TRUE), .groups = "drop")

# Use ggmap to plot lon and lat sensor points
ggmap(melb_map) +
  # Use total_peds to colour the sensor points according to density, and also depict the size of the dot based on density
  geom_point(data = ped_data_map, aes(x = lon, y = lat, size = Total_Peds, color = Total_Peds)) +
  # Create axis labels and colour variation based on total pedestrians and dot size based on total pedestrians. Add citing subtitle for map data
  labs(x = "Longitude", y = "Latitude", color = "Total Pedestrian Count", size = "Total Pedestrian Count") +
  theme_light() +
  # Remove scientific notation of large pedestrian totals from the legend and set colour scheme
  scale_color_distiller(palette = "PuRd", labels = scales::label_comma()) +
  # Remove scientific notation of large pedestrian totals from the legend
  scale_size_continuous(range = c(1, 6), labels = label_comma())
Total Pedestrians Per Sensor Location, 2025

Figure 3: Total Pedestrians Per Sensor Location, 2025

In Figure 3 (Stadia Maps, n.d.) (OpenMapTiles, n.d.) (OpenStreetMap contributors, n.d.), it is evident that the busiest sensor location in Melbourne is the intersection of Swanston Street and Flinders Lane, recording over 5 million total pedestrians in 2025.

Also recording over 5 million total pedestrians, is the Southbank Promenade sensor at the end of Southgate Avenue.

Generally, the sensor locations closest to transportation hubs such as Flinders Street Station and Melbourne Central Station in central Melbourne have the highest pedestrian traffic counts in 2025, with sensors on the outskirts of the city recording < 1 million pedestrians.

3 Analysis Aldwin

To further the investigative potential of the data set for practical application such as event planning, infrastructure prioritisation, and resource allocation, the below analysis will seek to answer:

  • Can pedestrian data allow us to ascertain whether or not a major event in Melbourne had occurred?
  • Is volatility associated with pedestrian traffic? i.e. the busiest streets are due to the volatility in the traffic.

3.1 Predicting demands

When Melbourne plays hosts to major events it would be expected that the pedestrian traffic would increase. By this logic the largest spikes in pedestrian traffic should also correspond with major events occurring in the city.

The figure above shows the 15 dates with the most spikes in pedestrian traffic (where spikes are when a sensor detects pedestrian traffic above 2 standard deviations). As we can see there are some stand out dates which would be expected; 31 December and 1 January which co-inside with new year’s festivities. However, the other dates require a deeper dive to identify if there were any major events during those days. January 1 2025 - New Years Day January 1 2024 - New Years Day December 31 2024 - New Years Eve Febuary 17 2024 - Taylor Swift Eras Concert Decemeber 14 2024 - No discernible major event/holiday December 31 2023 - New Years Eve Decemeber 16 2023 - No discernible major event/holiday March 15 2025 - Formula 1 Australian Grand Prix March 14 2025 - Formula 1 Australian Grand Prix Febuary 24 2025 - No discernible major event/holiday Febuary 18 2025 - No discernible major event/holiday December 23 2023 - No discernible major event/holiday December 15 2023 - No discernible major event/holiday December 21 2024 - No discernible major event/holiday; summer solstice March 9 2025 - Moomba Festival Sunday

As we can observe a majority of the spiked traffic is a result of a major event occurring in Melbourne at the time which would invite foot traffic. However, there are some dates that do not appear to have any major events. That is not to say there is no causation for these spikes in foot traffic, but these causes may not be directly from major events e.g. roadworks causing upticks in foot traffic, multiple smaller events occurring simultaneously.

3.2 Volitiliy

Often there is talk about whether our city can contain the demand of its people. However often these demands are needed sparingly and the cost versus benefit must be considered when it comes to expansion of footpaths, walking trails etc, is this the case when it comes to our busiest streets?

As observed in the chart below we can see the locations that have the highest average pedestrian traffic also have the highest volatility in their traffic. A possible explanation for this is high traffic locations may be situated near event venues, tourist areas, or transport hubs that experience irregular surges. In contrast, the bottom 10 locations have relatively stable traffic patterns, which may indicate they are stable commuter corridors or quieter areas. Additionally, the data collection occurred at different hours during the day, thus some of the high volatility can be explained by recording that occur when there is little traffic regardless of the area e.g. late at night, which would have a greater impact on variance for typically higher traffic areas.

4 Conclusion

The analysis of Melbourne pedestrian traffic from August 2023 to August 2025 highlights notable seasonal, temporal and spatial trends.

Despite seasonal conclusions being difficult to make due to incomplete data limitations, it was evident that pedestrian activity drops significantly during winter months, while spring and autumn show consistently higher pedestrian volumes. Summer tends to experience volatility, which is likely attributed to environmental factors such as heatwaves, or cultural factors such as holiday and vacation trends typical for that season.

The monthly average pedestrian counts declined steadily over the data period, likely influenced by increasing remote work practices and evolving commuting patterns following the pandemic.

Spatial mapping of sensor data revealed that central Melbourne locations, such as the intersection of Swanston Street and Flinders Lane and Southbank Promenade, are major pedestrian hubs attracting the highest foot traffic. These insights contribute to understanding walking trends and can inform city planners aiming to enhance pedestrian infrastructure and safety. Furthermore this locations tend to feature the greatest amounts of variation in the amount of pedestrians on any given day as they place a crucial role in circulating individuals during major events such as New Years or sporting events. Low-traffic areas show stable patterns, suggesting consistent usage and fewer sudden surges in pedestrian demand.

As would be expected the volume of pedestrians spikes when major events occur, knowing this is crucial in allowing councils and regulators to make infrastructure adjustments to safety accommodate demand such as shutting down sections of roads to allow for more pedestrian traffic or conversion of streets permanently to walkways. Additionally, understanding these patterns would enable better deployment of public transport, crowd management resources, and event planning logistics to help ensure safety of pedestrians.

Future studies should address current data gaps and incorporate additional factors such as weather variations or special events to more comprehensively model pedestrian behavior in Melbourne. Additionally incorporating data in regards to roadworks and public transport disruptions would allow for a more detailed investigation on possible impacts to pedestrian density.

References

Allaire, J., Xie, Y., Dervieux, C., McPherson, J., Luraschi, J., Ushey, K., Atkins, A., Wickham, H., Cheng, J., Chang, W., & Iannone, R. (2024). Rmarkdown: Dynamic documents for r. https://github.com/rstudio/rmarkdown
Auguie, B. (2017). gridExtra: Miscellaneous functions for "grid" graphics. https://CRAN.R-project.org/package=gridExtra
City of Melbourne Open Data Team. (2025). Pedestrian counting system (counts per hour). data.melbourne.vic.gov.au. https://data.melbourne.vic.gov.au/explore/dataset/pedestrian-counting-system-monthly-counts-per-hour/export/
Coverdale, C. (2021). Making beautiful maps in r. https://rpubs.com/charlescoverdale/map
Eady, J., Poetter, A., & Rossiter, B. (2024). Walking matters [Report]. Victoria Walks. https://www.victoriawalks.org.au/Assets/Files/Walking-Matters.pdf
Grolemund, G., & Wickham, H. (2011). Dates and times made easy with lubridate. Journal of Statistical Software, 40(3), 1–25. https://www.jstatsoft.org/v40/i03/
Kahle, D., & Wickham, H. (2013). Ggmap: Spatial visualization with ggplot2. The R Journal, 5(1), 144–161. https://journal.r-project.org/archive/2013-1/kahle-wickham.pdf
Kelly, L., & Condous, L. (2025). Melbourne has been named among the top 20 most walkable cities worldwide, according to a global survey. Time Out. https://www.timeout.com/melbourne/news/melbourne-has-been-named-among-the-top-20-most-walkable-cities-worldwide-according-to-a-global-survey-042225
Müller, K., & Wickham, H. (2025). Tibble: Simple data frames. https://tibble.tidyverse.org/
OpenAI. (2024). ChatGPT (GPT-4-turbo, may 2024 version). https://chat.openai.com/
OpenMapTiles. (n.d.). OpenMapTiles data. https://openmaptiles.org/.
OpenStreetMap contributors. (n.d.). OpenStreetMap. https://www.openstreetmap.org/copyright.
Pebesma, E., & Bivand, R. (2023). Spatial Data Science: With applications in R. Chapman and Hall/CRC. https://doi.org/10.1201/9780429459016
R Core Team. (2024). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/
Sanderson, S. P. (2024). How to check if a column is a date in r: A comprehensive guide with examples. R-bloggers post. https://www.r-bloggers.com/2024/02/how-to-check-if-a-column-is-a-date-in-r-a-comprehensive-guide-with-examples/
Sievert, C. (2020). Interactive web-based data visualization with r, plotly, and shiny. Chapman; Hall/CRC. https://plotly-r.com
Sievert, C., Parmer, C., Hocking, T., Chamberlain, S., Ram, K., Corvellec, M., & Despouy, P. (2025). Plotly: Create interactive web graphics via plotly.js. https://plotly-r.com
Spinu, V., Grolemund, G., & Wickham, H. (2024). Lubridate: Make dealing with dates a little easier. https://lubridate.tidyverse.org
Stadia Maps. (n.d.). Stamen terrain tiles. https://stadiamaps.com/.
Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer-Verlag New York. https://ggplot2.tidyverse.org
Wickham, H. (2023a). Forcats: Tools for working with categorical variables (factors). https://forcats.tidyverse.org/
Wickham, H. (2023b). Stringr: Simple, consistent wrappers for common string operations. https://stringr.tidyverse.org
Wickham, H. (2023c). Tidyverse: Easily install and load the tidyverse. https://tidyverse.tidyverse.org
Wickham, H., Averick, M., Bryan, J., Chang, W., McGowan, L. D., François, R., Grolemund, G., Hayes, A., Henry, L., Hester, J., Kuhn, M., Pedersen, T. L., Miller, E., Bache, S. M., Müller, K., Ooms, J., Robinson, D., Seidel, D. P., Spinu, V., … Yutani, H. (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686
Wickham, H., & Bryan, J. (2025). Readxl: Read excel files. https://readxl.tidyverse.org
Wickham, H., Chang, W., Henry, L., Pedersen, T. L., Takahashi, K., Wilke, C., Woo, K., Yutani, H., Dunnington, D., & van den Brand, T. (2025). ggplot2: Create elegant data visualisations using the grammar of graphics. https://ggplot2.tidyverse.org
Wickham, H., François, R., Henry, L., Müller, K., & Vaughan, D. (2023a). Dplyr: A grammar of data manipulation. https://dplyr.tidyverse.org
Wickham, H., François, R., Henry, L., Müller, K., & Vaughan, D. (2023b). Dplyr: A grammar of data manipulation. https://CRAN.R-project.org/package=dplyr
Wickham, H., & Henry, L. (2025). Purrr: Functional programming tools. https://purrr.tidyverse.org/
Wickham, H., Hester, J., & Bryan, J. (2024). Readr: Read rectangular text data. https://readr.tidyverse.org
Wickham, H., Vaughan, D., & Girlich, M. (2024). Tidyr: Tidy messy data. https://tidyr.tidyverse.org
Wiltshire, T. (2025). Working from home is no passing fad. The Sydney Morning Herald. https://www.smh.com.au/business/workplace/working-from-home-is-part-of-the-new-normal-bosses-need-to-lay-off-20250324-p5llx9.html
Xie, Y. (2014). Knitr: A comprehensive tool for reproducible research in R. In V. Stodden, F. Leisch, & R. D. Peng (Eds.), Implementing reproducible computational research. Chapman; Hall/CRC.
Xie, Y. (2015). Dynamic documents with R and knitr (2nd ed.). Chapman; Hall/CRC. https://yihui.org/knitr/
Xie, Y. (2025). Knitr: A general-purpose package for dynamic report generation in r. https://yihui.org/knitr/
Xie, Y., Allaire, J. J., & Grolemund, G. (2018). R markdown: The definitive guide. Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown
Xie, Y., Dervieux, C., & Riederer, E. (2020). R markdown cookbook. Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown-cookbook
Zhu, H. (2024). kableExtra: Construct complex table with kable and pipe syntax. http://haozhu233.github.io/kableExtra/